package se.bth.ke.firstfriend.dto.todo.helper;

import java.util.Comparator;
import java.util.Date;
import se.bth.ke.firstfriend.model.Todo;
import se.bth.ke.firstfriend.model.dto.TodoInfo;

/**
 *
 * @author Markus Goetz
 */
public class DeadlineComparator implements Comparator<TodoInfo> {

    @Override
    public int compare(TodoInfo todoInfo1, TodoInfo todoInfo2) {

        Todo todo1 = todoInfo1.getTodo();
        Todo todo2 = todoInfo2.getTodo();
        
        if (todo1 == null && todo2 == null) {
            return 0;
        } else if (todo1 == null) {
            return 1;
        } else if (todo2 == null) {
            return -1;
        } else {
            Date deadline1 = todo1.getDeadline();
            Date deadline2 = todo2.getDeadline();

            if (deadline1 == null) {
                if (deadline2 == null) {
                    return todo1.getId().compareTo(todo2.getId());
                } else {
                    return -1;
                }
            } else {
                if (deadline2 == null) {
                    return 1;
                } else {
                    return deadline1.compareTo(deadline2);
                }
            }
        }
    }
}
